The present invention relates to supplying data to a double buffering process, in which data is read from a foreground buffer, new data is written to a background buffer and then the roles of the buffers are exchanged.
In computer systems and in digital video systems, it is known to produce an output image by means of a video monitor or visual display unit in which digital information is derived by scanning data contained within an array of storage locations. Storage locations of this type are often referred to as frame buffers, and a scanning process in combination with a digital to analogue conversion process are performed in synchronism with the frame rate of the output monitor.
In some systems, a single buffer may be used such that the reading of data to produce an output signal and the writing of new data to provide updates is performed with respect to the same buffer. Under these circumstances, as new data is written to the buffer, artefacts are often generated during intermediate frames, created while the writing process takes place.
In order to overcome the generation of these artefacts, it is known to provide a double buffering scheme in which data is read from a foreground buffer, new data is written to a background buffer and then the roles of the buffers are exchanged. This system works particularly well when displaying frames of moving images such that a new frame of information is written to the background buffer while the previous frame is being read from the foreground buffer.
In computerised systems for manipulating moving images, possibly originating from a video or cinematographic film source, menus and control elements are often included in addition to the display of video material. These elements may be selected and operated upon by means of a manual control device, such as a mouse or stylus. When operated upon in this way, it is conventional practice for the elements to change in some way, thereby recognising the change of state. Often this is achieved by changing the shading characteristics of a displayed button, thereby creating an illusion to the effect that the button has been pressed.
Conventionally, changes of this type are effected in both buffers, such that the foreground buffer is updated while it is being used to generate output material. However, a problem associated with modifying data in this way is that visual artefacts may be introduced while a button is changing state.
It is an aim of the present invention to provide an improved method for supplying data to a double buffering process.
According to a first aspect of the present invention, there is provided a method of supplying data to a double buffering process, comprising the steps of supplying new data to a back buffer for a displayed item; identifying a condition to the effect that the item in a front buffer is invalid; validating invalid items in a back buffer and identifying a condition to the effect that these items are valid; and reversing the roles of the front and the back buffers.
According to a further aspect of the present invention, there is provided apparatus for updating items on a display, including processing means, instruction storage means and graphical processing means; said graphical processing means including display double buffering means, wherein said processing means is configured to: supply new data to a back buffer for a displayed item; to identify a condition to the effect that the item in a front buffer is invalid; to validate invalid items in the back buffer and identify that these items are invalid; and to reverse the roles of the front and back buffers.